下面程序只保留 " 拼候选名 —`getaddrinfo`— 判返回 —`freeaddrinfo`" 的结构。根名从命令行参数读入,缺省使用 `localhost` 仅演示解析流程,代码内不硬编码任何域名。解析失败的候选经 `gai_strerror` 打印错误文字后跳过,成功的候选配对释放链表,全程不建立连接。 ``` #include <stdio.h> #include <string.h> #include <netdb.h> int main(int argc, char **argv) { /* 根名只取命令行参数,缺省 localhost 仅演示结构,代码内不硬编码任何域名 */ const char *root = (argc >= 2) ? argv[1] : "localhost"; /* 通用前缀样本,仅用于演示拼接与判定的结构,不构成真实子域字典 */ const char *prefixes[] = {"www", "mail", "api"}; int n = (int)(sizeof(prefixes)